home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / Pascal / Snippets / PNL Libraries / Libraries / SpriteWorld / SpriteWorld files / Headers / SpriteLayer.h < prev    next >
Text File  |  1996-10-29  |  3KB  |  122 lines

  1. ///--------------------------------------------------------------------------------------
  2. //    SpriteLayer.h
  3. //
  4. //    Portions are copyright: © 1991-94 Tony Myles, All rights reserved worldwide.
  5. //
  6. //    Description:    constants, structures, and prototypes for sprite layers
  7. ///--------------------------------------------------------------------------------------
  8.  
  9.  
  10. #ifndef __SPRITELAYER__
  11. #define __SPRITELAYER__
  12.  
  13.  
  14. #ifndef __SWCOMMON__
  15. #include "SWCommonHeaders.h"
  16. #endif
  17.  
  18. #ifndef __SPRITE__
  19. #include "Sprite.h"
  20. #endif
  21.  
  22. #if PRAGMA_ALIGN_SUPPORTED
  23. #pragma options align=mac68k
  24. #endif
  25.  
  26.  
  27. ///--------------------------------------------------------------------------------------
  28. //    sprite layer type definitions
  29. ///--------------------------------------------------------------------------------------
  30.  
  31. typedef struct SpriteLayerRec SpriteLayerRec;
  32. typedef SpriteLayerRec *SpriteLayerPtr, **SpriteLayerHdl;
  33.  
  34.  
  35. ///--------------------------------------------------------------------------------------
  36. //    sprite layer data structure
  37. ///--------------------------------------------------------------------------------------
  38.  
  39. struct SpriteLayerRec
  40. {
  41.     SpriteLayerPtr nextSpriteLayerP;    // next sprite layer
  42.     SpriteLayerPtr prevSpriteLayerP;    // previous sprite layer
  43.  
  44.     SpritePtr headSpriteP;                // head of sprite linked list
  45.     SpritePtr tailSpriteP;                // tail of sprite linked list
  46.  
  47.     long userData;                        // reserved for user
  48. };
  49.  
  50.  
  51. ///--------------------------------------------------------------------------------------
  52. //    sprite layer function prototypes
  53. ///--------------------------------------------------------------------------------------
  54.  
  55. #ifdef __cplusplus
  56. extern "C" {
  57. #endif
  58.  
  59. SW_FUNC OSErr SWCreateSpriteLayer(
  60.     SpriteLayerPtr *spriteLayerP);
  61.  
  62. SW_FUNC void SWDisposeSpriteLayer(
  63.     SpriteLayerPtr spriteLayerP);
  64.  
  65. SW_FUNC void SWAddSprite(
  66.     SpriteLayerPtr spriteLayerP,
  67.     SpritePtr newSpriteP);
  68.  
  69. SW_FUNC void SWRemoveSprite(
  70.     SpriteLayerPtr spriteLayerP,
  71.     SpritePtr oldSpriteP);
  72.  
  73. SW_FUNC void SWRemoveAllSpritesFromLayer(
  74.     SpriteLayerPtr srcSpriteLayerP);
  75.  
  76. SW_FUNC void SWSwapSprite(
  77.     SpriteLayerPtr spriteLayerP,
  78.     SpritePtr srcSpriteP,
  79.     SpritePtr dstSpriteP);
  80.  
  81. SW_FUNC void SWInsertSpriteAfterSprite(
  82.     SpriteLayerPtr spriteLayerP,
  83.     SpritePtr newSpriteP,
  84.     SpritePtr dstSpriteP);
  85.  
  86. SW_FUNC void SWInsertSpriteBeforeSprite(
  87.     SpriteLayerPtr spriteLayerP,
  88.     SpritePtr newSpriteP,
  89.     SpritePtr dstSpriteP);
  90.  
  91. SW_FUNC SpritePtr SWGetNextSprite(
  92.     SpriteLayerPtr spriteLayerP,
  93.     SpritePtr curSpriteP);
  94.  
  95. SW_FUNC void SWLockSpriteLayer(
  96.     SpriteLayerPtr spriteLayerP);
  97.     
  98. SW_FUNC void SWUnlockSpriteLayer(
  99.     SpriteLayerPtr spriteLayerP);
  100.  
  101. SW_FUNC void SWMoveSpriteLayer(
  102.     SpriteLayerPtr spriteLayerP);
  103.  
  104. SW_FUNC void SWCollideSpriteLayer(
  105.     SpriteWorldPtr    spriteWorldP,
  106.     SpriteLayerPtr srcSpriteLayerP,
  107.     SpriteLayerPtr dstSpriteLayerP);
  108.  
  109. SW_FUNC SpritePtr SWFindSpriteByPoint(
  110.     SpriteLayerPtr spriteLayerP,
  111.     SpritePtr startSpriteP,
  112.     Point testPoint);
  113.  
  114. #ifdef __cplusplus
  115. }
  116. #endif
  117.  
  118. #if PRAGMA_ALIGN_SUPPORTED
  119. #pragma options align=reset
  120. #endif
  121.  
  122. #endif /* __SPRITELAYER__ */